package cn.iocoder.yudao.module.eval.controller.admin.score.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 评分记录 Response VO")
@Data
public class EvalScoreRecordRespVO {

    @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long id;

    @Schema(description = "计划ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long planId;

    @Schema(description = "科目ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long subjectId;

    @Schema(description = "参评人员ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long candidateId;

    @Schema(description = "考评员ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long evaluatorId;

    @Schema(description = "详细评分数据", example = "{\"item1\": 80, \"item2\": 90}")
    private String scoreDetails;

    @Schema(description = "分项得分", example = "{\"theory\": 85, \"practice\": 90}")
    private String sectionScores;

    @Schema(description = "总分", requiredMode = Schema.RequiredMode.REQUIRED, example = "85.5")
    private BigDecimal totalScore;

    @Schema(description = "最高分", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
    private BigDecimal maxScore;

    @Schema(description = "是否通过", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
    private Boolean isPassed;

    @Schema(description = "评分状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Integer scoreStatus;

    @Schema(description = "是否已复核", example = "false")
    private Boolean isReviewed;

    @Schema(description = "复核人ID", example = "2")
    private Long reviewerId;

    @Schema(description = "复核时间")
    private LocalDateTime reviewTime;

    @Schema(description = "复核意见", example = "评分准确")
    private String reviewComments;

    @Schema(description = "评分备注", example = "表现良好")
    private String scoreComments;

    @Schema(description = "提交时间")
    private LocalDateTime submitTime;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime createTime;

}
